package com.smartleanx.module.hrm.service.esign.temp.vo;

import com.baomidou.mybatisplus.annotation.*;
import com.smartleanx.module.hrm.service.esign.temp.param.HrmEContractTempFileParam;
import com.smartleanx.module.hrm.service.esign.temp.result.HrmContractCodeResult;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * e签报合同模板
 *
 * @author xzq
 * @since 2025-07-07 15:56:14
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Schema(description = "e签报合同模板")
public class HrmEContractTempVo implements Serializable {
    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Long id;

    @Schema(description = "合同模板名称")
    private String tempName;

    @Schema(description = "签署有效期/天数")
    private String signTime;

    @Schema(description = "是否为劳动合同")
    private Integer labourContract;

    @Schema(description = "是否有合同编号 0/无 1/有")
    private Integer existNumber;

    @Schema(description = "合同编号生成规则1/手动输入  2/自动生成")
    private Integer numCreateRule;

    @Schema(description = "规则排序1/固定编码 2/发起日期 3/员工工号")
    private String ruleSort;

    @Schema(description = "固定编码")
    private String fixedCode;

    @Schema(description = "编码格式--发起日期")
    private String codeTime;

    @Schema(description = "e签宝文件id")
    private String tempEsignFileId;

    @Schema(description = "附件文件列表")
    private List<HrmEContractTempFileParam> attachmentFileList;

    @Schema(description = "签署文件列表")
    private List<HrmEContractTempFileParam> signFileList;

    @Schema(description = "参与方列表")
    private List<HrmEContractTempActorsVo> actorsList;

    @Schema(description = "归档文件id")
    private Long archivingFileId;

    @Schema(description = "文件列表")
    private List<HrmEContractTempFileParam> fileList;

    @Schema(description = "所属公司")
    private List<Long> corpId;

    @Schema(description = "编号生成规则")
    private List<HrmContractCodeResult> contractCodeList;

    @Schema(description = "合同模板e签宝id")
    private String tempEsignId;

    @Schema(description = "文件夹id列表")
    private List<Long> folderIdList;

    @Schema(description = "文件夹id")
    private Long folderId;

    @Schema(description = "创建人名称")
    private String tempCreateName;

    @Schema(description = "模板状态 0/关闭 1/启用 2/草稿")
    private Integer tempStatus;

    @Schema(description = "业务类型名称")
    private String tempTypeName;

    @Schema(description = "业务类型id")
    private Long tempTypeId;

    @Schema(description = "签署截止时间")
    private Date tempSignEndTime;

    @Schema(description = "描述")
    private String tempDesc;

    @Schema(description = "印章id")
    private Long sealId;

    @Schema(description = "合同档案文件id")
    private Long archivingFolderId;

    @Schema(description = "盖章方式 1/手动 2/自动")
    private Integer sealFallType;

    @Schema(description = "是否开启签署顺序 0/否 1/是")
    private Integer signSortOpen;




}
